// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mostbet sikkəsindən istifadə edin: onlayn kazino oynamaq üçün idman keçidiniz – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mostbet sikkəsindən istifadə edin: onlayn kazino oynamaq üçün idman keçidiniz

Mostbet: ən yaxşı online kazino platforması

Mostbet – ona baxın qeyd olunan ən yaxşı online kazino platformalarından biridir Azerbaycan ülkəsində. Bu platformda, fəzilətli bonuslar, çoxlu oyunlar və güclü təhlükəsizlik səviyyəsi tapınacaqsınız. Mostbet, dünya çoxulu sport təqdim edir, bunlardan birazdan futbol, basketbol və voleybol istifadəçiləri üçün özəllikləri var. Əgər siz onlara çatmaq istəyirsiniz, ümumiyyət da giriş yapmalısınız. Mostbet, dünya standartlarına uyğun rəsmi iştirak edir və sizin istədiyiniz ödəniş məxsədindən istifadə edə bilərsiniz. Bu platformda, dünya çoxlu kazino oyunları da tapa bilərsiniz, bunlardan birazdan slotlar, rulet və poker. Mostbet, müştərilərin keyfi etməsi üçün ideal bir yerdir.

Onlayn kazino oynamaq üçün idman keçidi: Mostbet

Onlayn kazino oynamaq üçün idman keçidi mostbet-də tapa bilersiniz. Azerbayjanlılar üçün hazırlanmış olan bu platformda keyfi və qazanç alma imkanı yüksəkdirdir. Mostbet-in canlı kazino sekciyası da mümkün olan tək tək oyunları təqdim edir. Bu platformda ayrıca slotlar da olan edəni özündən əbədi qazanç alma imkanı bar. Mostbet-in təlimlər və dəstək hizməsi sayəsində, onlayn kazino oynamaq üçün ideал seçimdir. Bu platformda sizin için özəllikli bir təşkilat keçididir ki, sizin için daha çox qazanç edinmək üçün mümkün olan bütün şansları təklif edir.

Mostbet sikkəsindən istifadə edin: onlayn kazino oynamaq üçün idman keçidiniz

Mostbet ilə online kazino sevişmək üçün 5 istifadəlı məlumat

Mostbet ilə online kazino sevişmək üçün 5 mütləq məlumat var: şəxsin adı və soyadı, e-poçt ünvanı, telefon nömrəsi, istifadəçi adı və şifrə. Əgər sizin tərciyəniz Mostbetdə olan xəbərdarlıqlarla tanışmak istəyirsiz, bunların bütünü tələb edilir. İstifadə edəcəyiniz məlumatı doğru və aktual göstərək, qeydiyyatdan keçirərkən problem yoxdur. Mostbet – tək də qonaq saxlanan online kazino platforması, daha çox müxtəlif oyunların mövcud olduğu və sizin için özəllikləri barədə məlumat verən bir platformadır. Əgər sizin ilk dəfə qonaqınız olan bu platforma isə, əlavə məlumat vermək zəruridir ki, sizin için daha rahat bir oyun təcrübəsi keçirsiniz. Mostbet online kazino ilə tanışın, qonaqsağınıza xoş gəlmisiniz!

Mostbet sikkəsindən istifadə edin: onlayn kazino oynamaq üçün idman keçidiniz

Nə qədər Mostbet sikkəsindən istifadə edə bilərsiniz?

Mostbet sirketi müxtəlif çeşnəl typlardakı oyunlar haqqında təqdim edir. Nə qədər Mostbet sikkəsindən istifadə edə bilərsiniz? Müəlliflər, slot máyinları, kart oyunları, spor bahisları və bir çox başqa oyun təkniklərini tanıtır. Əgər sizin sevimli oyununuz var, onu tapın və başa çatın. Mostbet sikkasının istifadəsi kollektiv tarixinizdakı keyfiyyətə çevrilir. Əgər siz hər zaman Mostbet sikkəsindən istifadə edə bilmək istəyirsiniz, hesabınıza qoşulun və keyfiyyətinizi keçdiyiniz zamanla artırın.

S

Sahə tərəfindan key intqrasion alınan qeydli “S” sözləri illə:
1. Slot mashinları – qıscı fazla müsaitlıq saxlanan oyunlar,
2. Sahtqaranların tə fight edilməsi üçün Səflik mükafatı,
3. Sənaye lideri olan Sınaq korporasiyası,
4. Salamlayıcı bonuslar https://mainecoastworkshop.com/ yeni qeydiyyatlılar üçün,
5. Sətir mikrasları ilə olan risklərin azaltılması üçün Sərfnislik ,
6. Sənaye təcrübəsi olan profesionalların istifadəsi Sərvis nəsimlərdə,

Asalan, mən Fikretim . Mən Mostbet sikkəsindən istifadə edirim onlayn kazino oynamaq üçün. Mən bir çox fərdi oyunları seviyirim, amma çox sevirdiyim oyunlarım quizz, xazır oyunları və slotlardır. Əgər siz bir çox fərdi oyunlar sevirsinizsiz, bizden çox müvaffaqı olduğunuzu təmin edirik. Mostbet-in müasir və gözlənilən tətbiqi mənə doğru idi. Mən həmişə müvaffaqı oldum.

Salam, mən Nurlanım . Mən onlayn kazino oyunlarına çox sevindim. Əgər siz onlayn kazino oynamaq istəyirsiniz, bizden çox müvaffaqı olduğunuzu təmin edirik. Mostbet sikkəsindən istifadə edərək, müasir və gözlənilən oyunlar keçirdib. Mən çox sevirdiyim oyunlarımı burada keçirdim və müvaffaq oldum. Əgər siz onlayn kazino oyunlarına çox sevindirsinizsiz, bizden çox müvaffaqı olduğunuzu təmin edirik.

Mostbet – sizin azərbaycanlı oyuncular üçün ideal onlayn kazino keçididir. Siz bu platformu kullanaraq, tək keçid ilə dünya birincisi oyunlara uçanuz. Mostbet sikkəsindən istifadə edərkən, sizdən istifadə edilən güclü təhlükəsizlik və verilmiş əmrlilik standartları ilə qorunma imkanı var.

Mostbet – sizin kompyuterinizdə və mobil cihazınızda razıladığınız bütün onlayn kazino oyunlarının bir araya getirilmiş platformasıdır. Bu platform, sizin için müxtəlif oyun türləri, çoxlu bonuslar və promosyalar sunuyur.

Mostbet sikkəsindən istifadə edin – bu, sizin onlayn kazino oynamaq üçün en güclü, verilmiş əmrlilik standartları ilə saxlanılan və müxtəlif dillərdə müvəffəqiyyətli xidmət verən bir platformdır. Bu nəticə, siz onlayn kazino oyunlarına bir daha qoşulmaq istəyirsinizsə və ya sizin dili ilə razıladığınız xidmət istifadə edə bilərsiniz.

Design and Develop by Ovatheme